﻿namespace TelecoSystems.Views
{
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Navigation;
    using TelecoSystems.LoginUI;
    using TelecoSystems.Web.Services.Products;
    using TelecoSystems.Infrastructure;
    using TelecoSystems.ViewModels;
    using Microsoft.Practices.Composite.Regions;
    using Microsoft.Practices.Composite.Modularity;
    using Microsoft.Practices.Unity;

    public partial class ShellView : UserControl
    {
        private readonly IRegionManager regionManager;
        private readonly IUnityContainer unityContainer;
        private readonly IModuleManager moduleManager;

        public ShellView(ShellViewModel _viewModel, IModuleManager _moduleManager, IRegionManager _regionManager, IUnityContainer _unityContainer)
        {
            InitializeComponent();

            DataContext = _viewModel;

            regionManager = _regionManager;
            unityContainer = _unityContainer;
            moduleManager = _moduleManager;

            this.loginContainer.Child = new LoginStatus();
        }

        /// <summary>
        ///     After the Frame navigates, ensure the <see cref="HyperlinkButton"/> representing the current page is selected
        /// </summary>
        //private void ContentFrame_Navigated(object sender, NavigationEventArgs e)
        //{
        //    foreach (UIElement child in LinksStackPanel.Children)
        //    {
        //        HyperlinkButton hb = child as HyperlinkButton;
        //        if (hb != null && hb.NavigateUri != null)
        //        {
        //            if (hb.NavigateUri.ToString().Equals(e.Uri.ToString()))
        //            {
        //                VisualStateManager.GoToState(hb, "ActiveLink", true);
        //            }
        //            else
        //            {
        //                VisualStateManager.GoToState(hb, "InactiveLink", true);
        //            }
        //        }
        //    }
        //}

        /// <summary>
        ///     If an error occurs during navigation, show an error window
        /// </summary>
        //private void ContentFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
        //{
        //    e.Handled = true;
        //    ErrorWindow.CreateNew(e.Exception);
        //}
    }
}